package com.jiangxjsy.gateway.service.security;

import org.springframework.http.HttpCookie;
import org.springframework.util.MultiValueMap;

/**
 * wukong-crm-master
 * 蒋胜宇
 * 2025/5/30 15:37
 */

public interface PermissionService {
    /**
     * 判断用户是否有权限
     *
     * @param authentication 用户权限标识
     * @param url 请求地址
     * @param method 请求方法
     * @return 是否有权限
     */
    boolean hasPermission(String authentication, String url, String method);

    /**
     * 判断请求是否在白名单中
     *
     * @param url 请求地址
     * @return 是否在白名单中
     */
    boolean isWhitelistedRequest(String url);

    /**
     * 判断token是否认证通过
     *
     * @param authentication 用户权限标识
     * @param url 请求地址
     * @param cookies 请求cookies
     * @return token是否认证通过
     */
    boolean isTokenAuthenticated(String authentication, String url, MultiValueMap<String, HttpCookie> cookies);
}
